1. Technical Field
This disclosure generally relates to designing integrated circuits, and more specifically relates to software tools for designing integrated circuits.
2. Background Art
The proliferation of modern electronics is due in large part to the development of the integrated circuit. Integrated circuits allow many different circuit elements to be implemented on a single chip. As technology advances, the number of circuit elements on a chip of a given size increases, enhancing the performance and reducing the cost of integrated circuits.
The design of integrated circuits is typically performed in three stages. The first stage is logic design, wherein the desired operation of the integrated circuit is defined. The second stage is logic synthesis, wherein the desired operation is translated into the required circuit elements for a given technology. The third stage is physical design, which assigns the placement of these elements and routing which creates the wire interconnect of these elements on the integrated circuit. Placement defines the location of the circuit elements on the integrated circuit. Routing defines interconnections between circuit elements.
The design cycle for an integrated circuit typically requires many engineering changes. An engineering change to an integrated circuit is typically created by analyzing an update to a high-level logic design in a high-level design language and making the equivalent logical change to a synthesized version of that design. For simple logic changes this is a fairly easy process to follow. However, when the high-level design changes are complex or buried deep inside of shared logic it is not always easy to locate the equivalent function in the synthesized logic design. This is primarily due to the fact that synthesis combines common logic and creates a new set of signal names that cannot be traced back to any source in the high-level design. Considerable time and effort can be devoted to manually searching through the synthesized output to locate the logic blocks at which to implement the engineering change.